package com.ttbj.api.yitong;

import java.util.List;
import java.util.Map;

import com.ttbj.api.dto.Page;
import com.ttbj.api.dto.YtPayDto;
import com.ttbj.api.exception.BusinessException;


public interface YtPayService {
	
	/**
	 * 分页条件查询支付详情列表
	 * @param startDateTime 支付时间的开始时间
	 * @param endDateTime 支付时间的结束时间
	 * @param merOrderNum 商户订单号
	 * @param page 分页页码
	 * @return
	 * @throws BusinessException
	 */
	public List<YtPayDto> findYtPayInfoByPage(String startDateTime, String endDateTime, String merOrderNum, String orderId, Page page) throws BusinessException;
	
	/**
	 * 分页条件查询支付详情数量
	 * @param startDateTime 支付时间的开始时间
	 * @param endDateTime 支付时间的结束时间
	 * @param merOrderNum 商户订单号
	 * @return
	 * @throws BusinessException
	 */
	public Integer findYtPayInfoByPageCount(String startDateTime, String endDateTime, String merOrderNum, String orderId) throws BusinessException;
	
	/**
	 * 增加支付详情
	 * @param object 支付完成后应答详情信息
	 * @throws BusinessException
	 */
	public Integer addToPaymentRecord(Object object);
	
	/**
	 * 
	 * @param merOrderNum
	 * @param tranDate
	 * @param respCode
	 */
	public void transactionQueryAndUpdate(String merOrderNum, String tranDate, String respCode);
	
	/**
	 * 对账文件下载
	 * @param type 类型：1为微信/支付宝，2为微信小程序
	 * @param tranDate 清算日期 如：2018-10-25
	 * @throws BusinessException
	 */
	public Map<String, String> loadTradeFile(Integer type, String tranDate) throws Exception;
	
	/**
	 * 易通退款
	 * @param orgMerOrderNum 原交易商户订单号
	 * @param refundAmtStr 退款金额：单位分
	 * @return
	 * @throws Exception
	 */
	public Map<String, String> tkTransaction(String orgMerOrderNum, String refundAmtStr) throws Exception;
}
